package com.example.webflux;

import reactor.core.publisher.Flux;

import java.util.stream.Stream;


/**
 * webflux 的关键是自己编写的代码里面返回流（Flux/Mono），spring框架来负责处理订阅
 * spring框架提供了2种开发模式来编写响应式代码，使用mvc之前的注解模式和使用router function模式，都需要我们的代码返回流
 * spirng的响应是数据库  spring data jp， 如使用mongodb， 也是返回流，订阅都需要交给框架完成，自己不订阅
 *
 * 现在支持reactive support的有 postgres microsoft sql server, mysql, h2, mongodb redis cassandra, rabbitmq, kafka
 */

public class WebFluxTest02 {
    public static void main(String[] args) throws InterruptedException {
        Flux<String> flux=Flux.fromStream(Stream.of("abcdefghijkmlnopqrstuvwxyz").flatMap(i->Stream.of(i.split(""))));
        flux.subscribe(
            item-> System.out.println("接收到的数据："+item),
                System.out::println,
                ()-> System.out.println("接收完成")
        );
        Thread.currentThread().join();

    }
}
